﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using webapp4U;
using webapp4U.BOL;
using System.Data;
using System.Data.SqlClient;
using System.Text.RegularExpressions;

public partial class Usercontrol_ProceedOrder : System.Web.UI.UserControl
{
    
    static string str = webapp4U.Configuration.CurrentConnectionString;
    string error = "";
    protected void Page_Load(object sender, EventArgs e)
    {
        uscMsgBox1.MsgBoxAnswered += MessageAnswered;
        if (!IsPostBack)
        {
            BindProvinceList();
            if (Session["UserName"] != null)
            {
                step_1.Visible = false;
                step_3.Visible = false;
                step_2.Visible = true;
                btnStep_2_Back.Visible = false;
                txtSalesp_key_Support.Text = Session["UserName"].ToString();                
            }
            if (Session["CustomerFind"] !=null)
            {                
                DataTable dtCustomer = new DataTable();
                dtCustomer = (DataTable)Session["CustomerFind"];
                if (dtCustomer.Rows.Count > 0)
                {
                    txtCustomerKey.Text = dtCustomer.Rows[0]["customer_key"].ToString();
                    txtFullName.Text = dtCustomer.Rows[0]["customer_name"].ToString();
                    txtPhone.Text = dtCustomer.Rows[0]["phone"].ToString();
                    dropdlProvince.SelectedValue = dtCustomer.Rows[0]["ProvinceCode"].ToString();
                    //dropdlProvince.SelectedItem.Value = dtCustomer.Rows[0]["ProvinceCode"].ToString();
                    BindDataTown(dtCustomer.Rows[0]["ProvinceCode"].ToString());
                    dropdlTown.SelectedValue = dtCustomer.Rows[0]["TownCode"].ToString();
                    //dropdlTown.SelectedItem.Value = dtCustomer.Rows[0]["TownCode"].ToString();
                    txtAddress.Text = dtCustomer.Rows[0]["address"].ToString();
                    txtIdNo.Text = dtCustomer.Rows[0]["IDCardNo"].ToString();
                    
                }
            }
        }
        
    }
    private void BindProvinceList()
    {

        dropdlProvince.DataSource = webapp4U.BOL.ShoppingCart.dtListProvince(ref error);
        dropdlProvince.DataTextField = "Name";
        dropdlProvince.DataValueField = "Code";
        dropdlProvince.DataBind();
        dropdlTown.DataSource = webapp4U.BOL.ShoppingCart.dtListTownByProvinceCode(ref error, "");
        dropdlTown.DataTextField = "Name";
        dropdlTown.DataValueField = "Code";
        dropdlTown.DataBind();

        
    }
    private bool checkFiledStep1()
    {
        bool flag = true;
        if (txtFullName.Text == String.Empty)
        {
            flag = false;
            uscMsgBox1.AddMessage("Họ và tên không được rỗng.", uscMsgBox.enmMessageType.Error);
        }
        if (txtPhone.Text == String.Empty)
        {
            flag = false;
            uscMsgBox1.AddMessage("Số điện thoại không được rỗng", uscMsgBox.enmMessageType.Error);
        }
        else
        {
            //string EmailPatern = @"^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$";
            string PhonePatern = @"(^[0]{1}[1]{1}[0-9]{9}$)|(^[0]{1}[0,2-9]{1}[0-9]{8}$)";
            Regex reg=new Regex(PhonePatern);
            if(!reg.IsMatch(txtPhone.Text))
            {
                flag = false;
                uscMsgBox1.AddMessage("Số điện thoại không hợp lệ. Vd:09xxxxxxxx hoặc 01xxxxxxxx.", uscMsgBox.enmMessageType.Error);
            }   
        }

        if (dropdlProvince.SelectedIndex <= 0)
        {
            flag = false;
            uscMsgBox1.AddMessage("Chưa chọn Tỉnh/Thành phố.", uscMsgBox.enmMessageType.Error);
        }
        if (dropdlTown.SelectedIndex <= 0)
        {
            flag = false;
            uscMsgBox1.AddMessage("Chưa chọn Quận/Huyện.", uscMsgBox.enmMessageType.Error);
        }
        if (txtAddress.Text == String.Empty)
        {
            flag = false;
            uscMsgBox1.AddMessage("Địa chỉ giao hàng không được rỗng.", uscMsgBox.enmMessageType.Error);
        }
        
        return flag;
    }

    protected void btnStep_1_Next_Click(object sender, EventArgs e)
    {
        if (checkFiledStep1())
        {
            if (Session["ShoppingCart"] != null)
            {
                step_1.Visible = false;
                step_3.Visible = false;
                step_2.Visible = true;
            }
            else
            {
                uscMsgBox1.AddMessage("Chưa có sản phẩm nào trong giỏ hàng của bạn", uscMsgBox.enmMessageType.Error);
            }
            //xử lý tiếp 
            
        }
        
    }
    protected void btnStep_2_Back_Click(object sender, EventArgs e)
    {
        step_1.Visible = true;
        step_3.Visible = false;
        step_2.Visible = false;
    }
    protected void btnStep_2_Next_Click(object sender, EventArgs e)
    {
        if (Session["ShoppingCart"] != null)
        {
            step_1.Visible = false;
            step_3.Visible = true;
            step_2.Visible = false;

            if (txtSalesp_key_Support.Text == String.Empty)
            {
                if (Session["UserName"] != null)
                {
                    txtSalesp_key_Support.Text = Session["UserName"].ToString();
                }
                else
                {
                    if (Session["sender"] != null)
                    {
                        txtSalesp_key_Support.Text = Session["sender"].ToString();
                    }
                    else
                    {
                        string IdNo = "NoData";
                        if (txtIdNo.Text != String.Empty)
                            IdNo = txtIdNo.Text;
                        txtSalesp_key_Support.Text = webapp4U.BOL.ShoppingCart.GetSalesp_key_BASupport(ref error, IdNo, txtPhone.Text, dropdlProvince.SelectedValue, dropdlTown.SelectedValue);
                    }
                }
            }
            if (txtSiteCode.Text == String.Empty)
            {
                txtSiteCode.Text = webapp4U.BOL.ShoppingCart.GetSiteCodeBySalesp_key(ref error, txtSalesp_key_Support.Text);
            }
            if (txtMaHoaDon.Text == String.Empty)
            {
                txtMaHoaDon.Text = webapp4U.BOL.ShoppingCart.GetAndHoleOrderCode(ref error);
            }

            getPaymentMethodsID();
            getModeOfDelivery();
            //getPhone number
            string PhoneNumber = txtPhone.Text;
            if (Session["UserName"] != null)
            {
                PhoneNumber = webapp4U.BOL.ShoppingCart.GetPhoneNumberBA_BySalesp_key(ref error, Session["UserName"].ToString());
            }
            //Xử lý sms gửi đến số dt.
                if (webapp4U.BOL.ShoppingCart.SendSMS(ref error, PhoneNumber, "cam on ban da dat hang, ma xac nhan don hang cua ban la :" + txtMaHoaDon.Text))
            {
                uscMsgBox1.AddMessage("Mã xác nhận đã được hệ thống gửi đến cho bạn qua số điện thoại " + txtPhone.Text + " mà bạn đã cung cấp cho chúng tôi.", uscMsgBox.enmMessageType.Info);
            }
        }
        else
        {
            uscMsgBox1.AddMessage("Chưa có sản phẩm nào trong giỏ hàng của bạn", uscMsgBox.enmMessageType.Error);
        }
    }
    protected void btnStep_3_Back_Click(object sender, EventArgs e)
    {
        step_1.Visible = false;
        step_3.Visible = false;
        step_2.Visible = true;
    }
    protected void btnStep_3_Finish_Click(object sender, EventArgs e)
    {
        if (Session["ShoppingCart"] != null)
        {
            // Lưu xuống data Arcust, arhdr, arlin
            if (txtSMSCODE.Text != String.Empty)
            {
                if (txtSMSCODE.Text != txtMaHoaDon.Text)
                {
                    uscMsgBox1.AddMessage("Mã xác nhận không đúng.Hãy kiểm tra lại tin nhắn mà tổng đài đã gủi cho bạn qua số điện thoại " + txtPhone.Text + " bạn đã cung cấp.", uscMsgBox.enmMessageType.Error);
                }
                else
                {
                    List<ShoppingCart> ListShopCart = new List<ShoppingCart>();
                    string ToltalOrder = "0";
                    int n = 0;
                    if (Session["UserName"] == null)
                    {
                        string Customer_key = txtCustomerKey.Text;
                        if (Customer_key == String.Empty)
                            Customer_key = webapp4U.BOL.ShoppingCart.GetCustomerKeyNew(ref error);
                        // xóa tam giư trước đó nuế có
                        webapp4U.BOL.ShoppingCart.DeleteCustomer(ref error, Customer_key);
                        webapp4U.BOL.ShoppingCart.DeleteOrderAndOrderDetailOnlineTamGiu(ref error, txtMaHoaDon.Text);
                        if (InsertCustomerNotRegistry(Customer_key))
                        {
                            if (Session["ShoppingCart"] != null)
                            {
                                ListShopCart = (List<ShoppingCart>)Session["ShoppingCart"];
                                ToltalOrder = ShoppingCart.GetTotalShoppingCart(ListShopCart).ToString();
                            }
                            if (InsertOrder((int)EnumStatusOrder.FinishOrder, Customer_key, txtMaHoaDon.Text, txtSalesp_key_Support.Text, txtSiteCode.Text, "Customer", float.Parse(ToltalOrder), 4))
                            {

                                for (int i = 0; i < ListShopCart.Count; i++)
                                {
                                    if (InsertOrderDetail(txtMaHoaDon.Text, txtSiteCode.Text, "Customer", ListShopCart[i].ItemKey, ListShopCart[i].Description, ListShopCart[i].Quantity,
                                        ListShopCart[i].UnitPrice, i + 1))
                                    {
                                        n += 1;
                                    }
                                }                               
                            }
                        }
                        if (n == ListShopCart.Count)
                        {                            
                            Session["ShoppingCart"] = null;
                            uscMsgBox1.AddMessage("Bạn đã mua hàng thành công với số hóa đơn:" + txtMaHoaDon.Text + " . Nhân viên của chúng tôi sẽ liên hệ với bạn trong thời gian sớm nhất", uscMsgBox.enmMessageType.Success, true, false, "Redirect");
                            ClearText();
                        }
                        else
                        {
                            webapp4U.BOL.ShoppingCart.DeleteCustomer(ref error, Customer_key);
                            webapp4U.BOL.ShoppingCart.DeleteOrderAndOrderDetailOnlineTamGiu(ref error, txtMaHoaDon.Text);
                        }
                    }
                    else
                    {
                        // Nhà PP so=0 và Recuser=UserName
                        txtSalesp_key_Support.Text = Session["UserName"].ToString();
                        if (Session["ShoppingCart"] != null)
                        {
                            ListShopCart = (List<ShoppingCart>)Session["ShoppingCart"];
                            ToltalOrder = ShoppingCart.GetTotalShoppingCart(ListShopCart).ToString();
                        }
                        // xóa tam giư trước đó nuế có
                        webapp4U.BOL.ShoppingCart.DeleteOrderAndOrderDetailOnlineTamGiu(ref error, txtMaHoaDon.Text);
                        if (InsertOrder((int)EnumStatusOrder.FinishOrder, txtSalesp_key_Support.Text, txtMaHoaDon.Text, txtSalesp_key_Support.Text, txtSiteCode.Text, txtSalesp_key_Support.Text, float.Parse(ToltalOrder), 0))
                        {

                            for (int i = 0; i < ListShopCart.Count; i++)
                            {
                                if (InsertOrderDetail(txtMaHoaDon.Text, txtSiteCode.Text, txtSalesp_key_Support.Text, ListShopCart[i].ItemKey, ListShopCart[i].Description, ListShopCart[i].Quantity,
                                    ListShopCart[i].UnitPrice, i + 1))
                                {
                                    n += 1;
                                }
                            }
                            if (Session["ItemStartKit"] != null)
                            {
                                List<ShoppingCart> ListShopCartStartKit = new List<ShoppingCart>();
                                ListShopCartStartKit = (List<ShoppingCart>)Session["ItemStartKit"];
                                for (int i = 0; i < ListShopCartStartKit.Count; i++)
                                {
                                    InsertOrderDetail(txtMaHoaDon.Text, txtSiteCode.Text, txtSalesp_key_Support.Text, ListShopCartStartKit[i].ItemKey, ListShopCartStartKit[i].Description, ListShopCartStartKit[i].Quantity,
                                        ListShopCartStartKit[i].UnitPrice, n + i + 1);
                                }
                            }

                        }
                        if (n == ListShopCart.Count)
                        {
                            Session["ShoppingCart"] = null;
                            Session["ItemStartKit"] = null;
                            uscMsgBox1.AddMessage("Bạn đã mua hàng thành công với số hóa đơn:" + txtMaHoaDon.Text + " . Nhân viên của chúng tôi sẽ liên hệ với bạn trong thời gian sớm nhất", uscMsgBox.enmMessageType.Success, true, false, "Redirect");
                            ClearText();
                            
                        }
                        else
                        {
                            webapp4U.BOL.ShoppingCart.DeleteOrderAndOrderDetailOnlineTamGiu(ref error, txtMaHoaDon.Text);
                        }
                    }
                }
            }
            else
            {
                uscMsgBox1.AddMessage("Hãy nhập vào mã xác nhận mà tổng đài đã gủi cho bạn qua số điện thoại " + txtPhone.Text + " bạn đã cung cấp.", uscMsgBox.enmMessageType.Error);
            }
        }
        else
        {
            uscMsgBox1.AddMessage("Chưa có sản phẩm nào trong giỏ hàng của bạn", uscMsgBox.enmMessageType.Error);
        }
        //end
        
    }

    private bool InsertCustomerNotRegistry(string CustomerKey)
    {
        return webapp4U.BOL.ShoppingCart.InsertCustomerNotRegistry(ref error, CustomerKey, txtFullName.Text, txtAddress.Text,
            txtPhone.Text, dropdlProvince.SelectedValue, dropdlTown.SelectedValue, DateTime.Now.ToShortDateString(), txtIdNo.Text,txtSalesp_key_Support.Text,txtSiteCode.Text);
    }
    //username nếu là KH không đăng ký thì là "Customer" else Salesp_key
    //"so" nếu KH mua hàng so=4 nếu NPP mua hàng so=0 
    private bool InsertOrder(int StattusOrder, string CustomerKey, string OrderCode, string Salesp_key, string SiteCode, string UserName, float TotalOrder, int so)
    {
        return webapp4U.BOL.ShoppingCart.InsertOrder(ref error, SiteCode, OrderCode, Salesp_key, UserName, TotalOrder, DateTime.Now.ToShortDateString(), DateTime.Now, so, StattusOrder,
            txtPaymentMethodsID.Text, txtModeOfDelivery.Text, CustomerKey);
    }

    private bool InsertOrderDetail(string OrderCode,  string SiteCode, string UserName, string Itemkey, string ItemDescription,int SoLuong, float UnitPrice, int SoTT )
    {
        return webapp4U.BOL.ShoppingCart.InsertOrderDetail(ref error, SiteCode, OrderCode,DateTime.Now, UserName, DateTime.Now.ToShortTimeString(),
            Itemkey,ItemDescription,"0",SoLuong,UnitPrice,SoTT);
    }

    private void getPaymentMethodsID()
    {
       if(radTienMatTrucTiep.Checked)
           txtPaymentMethodsID.Text = "PM001";
        else //if (radChuyenKhoan.Checked)
           txtPaymentMethodsID.Text = "PM002";
    }
    private void getModeOfDelivery()
    {
        if (radNhanTaiCty.Checked)
            txtModeOfDelivery.Text = "MOD001";
        else if (radNVGiaoNhan.Checked)
            txtModeOfDelivery.Text = "MOD002";
        else
            txtModeOfDelivery.Text = "MOD003";
        
    }

    protected void btnStep_1_KeepOrder_Click(object sender, EventArgs e)
    {
        if (Session["ShoppingCart"] != null)
        {
            if (checkFiledStep1())
            {
                if (txtSalesp_key_Support.Text == String.Empty)
                {
                    if (Session["UserName"] != null)
                    {
                        txtSalesp_key_Support.Text = Session["UserName"].ToString();
                    }
                    else
                    {
                        if (Session["sender"] != null)
                        {
                            txtSalesp_key_Support.Text = Session["sender"].ToString();
                        }
                        else
                        {
                            string IdNo = "NoData";
                            if (txtIdNo.Text != String.Empty)
                                IdNo = txtIdNo.Text;
                            txtSalesp_key_Support.Text = webapp4U.BOL.ShoppingCart.GetSalesp_key_BASupport(ref error, IdNo, txtPhone.Text, dropdlProvince.SelectedValue, dropdlTown.SelectedValue);
                        }
                    }
                }
                if (txtSiteCode.Text == String.Empty)
                {
                    txtSiteCode.Text = webapp4U.BOL.ShoppingCart.GetSiteCodeBySalesp_key(ref error, txtSalesp_key_Support.Text);
                }
                if (txtMaHoaDon.Text == String.Empty)
                {
                    txtMaHoaDon.Text = webapp4U.BOL.ShoppingCart.GetAndHoleOrderCode(ref error);
                }
                if (txtCustomerKey.Text == String.Empty)
                {
                    txtCustomerKey.Text = webapp4U.BOL.ShoppingCart.GetCustomerKeyNew(ref error);
                }
                // lưu data
                List<ShoppingCart> ListShopCart = new List<ShoppingCart>();
                string ToltalOrder = "0";
                int n = 0;
                webapp4U.BOL.ShoppingCart.DeleteCustomer(ref error, txtCustomerKey.Text);
                webapp4U.BOL.ShoppingCart.DeleteOrderAndOrderDetailOnlineTamGiu(ref error, txtMaHoaDon.Text);

                if (InsertCustomerNotRegistry(txtCustomerKey.Text))
                {
                    if (Session["ShoppingCart"] != null)
                    {
                        ListShopCart = (List<ShoppingCart>)Session["ShoppingCart"];
                        ToltalOrder = ShoppingCart.GetTotalShoppingCart(ListShopCart).ToString();
                    }

                    if (InsertOrder((int)EnumStatusOrder.InputInfoCustomer, txtCustomerKey.Text, txtMaHoaDon.Text, txtSalesp_key_Support.Text, txtSiteCode.Text, "Customer", float.Parse(ToltalOrder), 4))
                    {

                        for (int i = 0; i < ListShopCart.Count; i++)
                        {
                            if (InsertOrderDetail(txtMaHoaDon.Text, txtSiteCode.Text, "Customer", ListShopCart[i].ItemKey, ListShopCart[i].Description, ListShopCart[i].Quantity,
                                ListShopCart[i].UnitPrice, i + 1))
                            {
                                n += 1;
                            }
                        }
                    }
                    if (n == ListShopCart.Count)
                    {
                        uscMsgBox1.AddMessage("Bạn đã tạm giử đơn hàng thành công ", uscMsgBox.enmMessageType.Success);

                    }
                    else
                    {
                        webapp4U.BOL.ShoppingCart.DeleteCustomer(ref error, txtCustomerKey.Text);
                        webapp4U.BOL.ShoppingCart.DeleteOrderAndOrderDetailOnlineTamGiu(ref error, txtMaHoaDon.Text);
                        uscMsgBox1.AddMessage("Bạn đã tạm giử đơn hàng thất bại ", uscMsgBox.enmMessageType.Error);
                    }
                }
                //Xử lý sms gửi đến số dt.
            }
        }
        else
        {
            uscMsgBox1.AddMessage("Chưa có sản phẩm nào trong giỏ hàng của bạn", uscMsgBox.enmMessageType.Error);
        }

    }
    protected void btnStep_2_KeepOrder_Click(object sender, EventArgs e)
    {
        if (Session["ShoppingCart"] != null)
        {
            if (txtSalesp_key_Support.Text == String.Empty)
            {
                if (Session["UserName"] != null)
                {
                    txtSalesp_key_Support.Text = Session["UserName"].ToString();
                }
                else
                {
                    if (Session["sender"] != null)
                    {
                        txtSalesp_key_Support.Text = Session["sender"].ToString();
                    }
                    else
                    {
                        string IdNo = "NoData";
                        if (txtIdNo.Text != String.Empty)
                            IdNo = txtIdNo.Text;
                        txtSalesp_key_Support.Text = webapp4U.BOL.ShoppingCart.GetSalesp_key_BASupport(ref error, IdNo, txtPhone.Text, dropdlProvince.SelectedValue, dropdlTown.SelectedValue);
                    }
                }
            }
            if (txtSiteCode.Text == String.Empty)
            {
                txtSiteCode.Text = webapp4U.BOL.ShoppingCart.GetSiteCodeBySalesp_key(ref error, txtSalesp_key_Support.Text);
            }
            if (txtMaHoaDon.Text == String.Empty)
            {
                txtMaHoaDon.Text = webapp4U.BOL.ShoppingCart.GetAndHoleOrderCode(ref error);
            }
            if (txtCustomerKey.Text == String.Empty)
            {
                txtCustomerKey.Text = webapp4U.BOL.ShoppingCart.GetCustomerKeyNew(ref error);
            }
            getPaymentMethodsID();
            getModeOfDelivery();
            // lưu data
            List<ShoppingCart> ListShopCart = new List<ShoppingCart>();
            string ToltalOrder = "0";
            int n = 0;
            webapp4U.BOL.ShoppingCart.DeleteCustomer(ref error, txtCustomerKey.Text);
            webapp4U.BOL.ShoppingCart.DeleteOrderAndOrderDetailOnlineTamGiu(ref error, txtMaHoaDon.Text);

            if (Session["UserName"] == null)
            {
                if (InsertCustomerNotRegistry(txtCustomerKey.Text))
                {
                    if (Session["ShoppingCart"] != null)
                    {
                        ListShopCart = (List<ShoppingCart>)Session["ShoppingCart"];
                        ToltalOrder = ShoppingCart.GetTotalShoppingCart(ListShopCart).ToString();
                    }
                    if (InsertOrder((int)EnumStatusOrder.SelectMethodPaymentAnDelivery, txtCustomerKey.Text, txtMaHoaDon.Text, txtSalesp_key_Support.Text, txtSiteCode.Text, "Customer", float.Parse(ToltalOrder), 4))
                    {

                        for (int i = 0; i < ListShopCart.Count; i++)
                        {
                            if (InsertOrderDetail(txtMaHoaDon.Text, txtSiteCode.Text, "Customer", ListShopCart[i].ItemKey, ListShopCart[i].Description, ListShopCart[i].Quantity,
                                ListShopCart[i].UnitPrice, i + 1))
                            {
                                n += 1;
                            }
                        }
                    }
                    if (n == ListShopCart.Count)
                    {
                        uscMsgBox1.AddMessage("Bạn đã tạm giử đơn hàng thành công ", uscMsgBox.enmMessageType.Success);

                    }
                    else
                    {
                        webapp4U.BOL.ShoppingCart.DeleteCustomer(ref error, txtCustomerKey.Text);
                        webapp4U.BOL.ShoppingCart.DeleteOrderAndOrderDetailOnlineTamGiu(ref error, txtMaHoaDon.Text);
                        uscMsgBox1.AddMessage("Bạn đã tạm giử đơn hàng thất bại ", uscMsgBox.enmMessageType.Error);
                    }
                }
            }
            else // Giử hóa đơn nhà PP
            {
                if (Session["ShoppingCart"] != null)
                {
                    ListShopCart = (List<ShoppingCart>)Session["ShoppingCart"];
                    ToltalOrder = ShoppingCart.GetTotalShoppingCart(ListShopCart).ToString();
                }
                if (InsertOrder((int)EnumStatusOrder.SelectMethodPaymentAnDelivery, txtCustomerKey.Text, txtMaHoaDon.Text, txtSalesp_key_Support.Text, txtSiteCode.Text, "Customer", float.Parse(ToltalOrder), 4))
                {

                    for (int i = 0; i < ListShopCart.Count; i++)
                    {
                        if (InsertOrderDetail(txtMaHoaDon.Text, txtSiteCode.Text, "Customer", ListShopCart[i].ItemKey, ListShopCart[i].Description, ListShopCart[i].Quantity,
                            ListShopCart[i].UnitPrice, i + 1))
                        {
                            n += 1;
                        }
                    }
                }
                if (n == ListShopCart.Count)
                {
                    uscMsgBox1.AddMessage("Bạn đã tạm giử đơn hàng thành công ", uscMsgBox.enmMessageType.Success);

                }
                else
                {
                    webapp4U.BOL.ShoppingCart.DeleteCustomer(ref error, txtCustomerKey.Text);
                    webapp4U.BOL.ShoppingCart.DeleteOrderAndOrderDetailOnlineTamGiu(ref error, txtMaHoaDon.Text);
                    uscMsgBox1.AddMessage("Bạn đã tạm giử đơn hàng thất bại ", uscMsgBox.enmMessageType.Error);
                }
            }
        }
        else
        {
            uscMsgBox1.AddMessage("Chưa có sản phẩm nào trong giỏ hàng của bạn", uscMsgBox.enmMessageType.Error);
        }
    }    
    protected void btnStep_3_KeepOrder_Click(object sender, EventArgs e)
    {
        // lưu data
        if (Session["ShoppingCart"] != null)
        {
            List<ShoppingCart> ListShopCart = new List<ShoppingCart>();
            string ToltalOrder = "0";
            int n = 0;
            webapp4U.BOL.ShoppingCart.DeleteCustomer(ref error, txtCustomerKey.Text);
            webapp4U.BOL.ShoppingCart.DeleteOrderAndOrderDetailOnlineTamGiu(ref error, txtMaHoaDon.Text);
            if (Session["UserName"] == null)
            {
                if (InsertCustomerNotRegistry(txtCustomerKey.Text))
                {
                    if (Session["ShoppingCart"] != null)
                    {
                        ListShopCart = (List<ShoppingCart>)Session["ShoppingCart"];
                        ToltalOrder = ShoppingCart.GetTotalShoppingCart(ListShopCart).ToString();
                    }
                    if (InsertOrder((int)EnumStatusOrder.InputAccessCode, txtCustomerKey.Text, txtMaHoaDon.Text, txtSalesp_key_Support.Text, txtSiteCode.Text, "Customer", float.Parse(ToltalOrder), 4))
                    {

                        for (int i = 0; i < ListShopCart.Count; i++)
                        {
                            if (InsertOrderDetail(txtMaHoaDon.Text, txtSiteCode.Text, "Customer", ListShopCart[i].ItemKey, ListShopCart[i].Description, ListShopCart[i].Quantity,
                                ListShopCart[i].UnitPrice, i + 1))
                            {
                                n += 1;
                            }
                        }
                    }
                    if (n == ListShopCart.Count)
                    {
                        uscMsgBox1.AddMessage("Bạn đã tạm giử đơn hàng thành công ", uscMsgBox.enmMessageType.Success);

                    }
                    else
                    {
                        webapp4U.BOL.ShoppingCart.DeleteCustomer(ref error, txtCustomerKey.Text);
                        webapp4U.BOL.ShoppingCart.DeleteOrderAndOrderDetailOnlineTamGiu(ref error, txtMaHoaDon.Text);
                        uscMsgBox1.AddMessage("Bạn đã tạm giử đơn hàng thất bại ", uscMsgBox.enmMessageType.Error);
                    }
                }
            }
            else // Giử hóa đơn nhà PP
            {
                if (Session["ShoppingCart"] != null)
                {
                    ListShopCart = (List<ShoppingCart>)Session["ShoppingCart"];
                    ToltalOrder = ShoppingCart.GetTotalShoppingCart(ListShopCart).ToString();
                }
                if (InsertOrder((int)EnumStatusOrder.InputAccessCode, txtCustomerKey.Text, txtMaHoaDon.Text, txtSalesp_key_Support.Text, txtSiteCode.Text, "Customer", float.Parse(ToltalOrder), 4))
                {

                    for (int i = 0; i < ListShopCart.Count; i++)
                    {
                        if (InsertOrderDetail(txtMaHoaDon.Text, txtSiteCode.Text, "Customer", ListShopCart[i].ItemKey, ListShopCart[i].Description, ListShopCart[i].Quantity,
                            ListShopCart[i].UnitPrice, i + 1))
                        {
                            n += 1;
                        }
                    }
                }
                if (n == ListShopCart.Count)
                {
                    uscMsgBox1.AddMessage("Bạn đã tạm giử đơn hàng thành công ", uscMsgBox.enmMessageType.Success);

                }
                else
                {
                    webapp4U.BOL.ShoppingCart.DeleteCustomer(ref error, txtCustomerKey.Text);
                    webapp4U.BOL.ShoppingCart.DeleteOrderAndOrderDetailOnlineTamGiu(ref error, txtMaHoaDon.Text);
                    uscMsgBox1.AddMessage("Bạn đã tạm giử đơn hàng thất bại ", uscMsgBox.enmMessageType.Error);
                }
            }
        }
        else
        {
            uscMsgBox1.AddMessage("Chưa có sản phẩm nào trong giỏ hàng của bạn", uscMsgBox.enmMessageType.Error);
        }
    }

    public void BindDataTown(string ProvinceCode)
    {
        try
        {
            dropdlTown.DataSource = webapp4U.BOL.ShoppingCart.dtListTownByProvinceCode(ref error, ProvinceCode);
            dropdlTown.DataTextField = "Name";
            dropdlTown.DataValueField = "Code";
            dropdlTown.DataBind();
        }
        catch { }
    }

    protected void dropdlProvince_SelectedIndexChanged(object sender, EventArgs e)
    {
        BindDataTown(dropdlProvince.SelectedValue);
    }
    private void ClearText()
    {
        txtMaHoaDon.Text = String.Empty;
        txtSalesp_key_Support.Text = String.Empty;
        txtSiteCode.Text = String.Empty;
    }

    public void MessageAnswered(object sender, uscMsgBox.MsgBoxEventArgs e)
    {
        if (e.Args == "Redirect")
        {
            if (e.Answer == uscMsgBox.enmAnswer.OK)
            {
                Response.Redirect(Globals.ApplicationPath + "Default.aspx?Homepage=");                
            }            
        }
    }
    protected void btnLogin_Click(object sender, EventArgs e)
    {
        if (txtUserName.Text != String.Empty && txtPass.Text != String.Empty)
        {
            string kq = "";
            ClassExecute.ClassExecute dt = new ClassExecute.ClassExecute();
            string Md5 = dt.GetMd5Sum(txtPass.Text);
            kq = dt.GetDataDepend(str, "k_CheckAccountBA", CommandType.StoredProcedure, ref error,
                new SqlParameter("@UserName", txtUserName.Text),
                new SqlParameter("@Password", Md5));
            if (kq != "Null")
            {
                Session["TypeID"] = kq;
                Session["UserName"] = txtUserName.Text;
                step_1.Visible = false;
                step_3.Visible = false;
                step_2.Visible = true;
                btnStep_2_Back.Visible = false;
                txtSalesp_key_Support.Text = Session["UserName"].ToString();
                UpdatePanel1.Update();
                CloseDialog("Login");
                uscMsgBox1.AddMessage("Đăng nhập thành công", uscMsgBox.enmMessageType.Success);
                //kiểm tra xem có phải đơn hàng đầu tiên
                if (ShoppingCart.CheckFirstOrderBySalespKey(ref error, Session["UserName"].ToString()))
                {
                    List<ShoppingCart> ListItemStartKit = new List<ShoppingCart>();
                    ListItemStartKit = ShoppingCart.GetItemStartKit(ref error);
                    Session["ItemStartKit"] = ListItemStartKit;
                    //render 
                    UpdatePanel updatepan = new UpdatePanel();
                    updatepan = (UpdatePanel)Page.Master.FindControl("ContentPlaceHolder1").FindControl("UpdatePanel1").FindControl("ShoppingCartDetail1").FindControl("UpdatePanelOnShoppingCartDetails");
                    updatepan.Update();

                }
                //uscMsgBox1.AddMessage("Đăng nhập thành công kq:" + kq , uscMsgBox.enmMessageType.Success, true, false, "LoginSuccess");
                
            }
            else
            {
                uscMsgBox1.AddMessage("Tên đăng nhập và tài khoản không hợp lệ", uscMsgBox.enmMessageType.Error);
            }
        }
        else
        {
            if (txtUserName.Text == String.Empty)
            {
                uscMsgBox1.AddMessage("Tên đăng nhập không được rỗng", uscMsgBox.enmMessageType.Error);
            }
            if (txtPass.Text == String.Empty)
            {
                uscMsgBox1.AddMessage("Mật khẩu không được rỗng", uscMsgBox.enmMessageType.Error);
            }
        }        
    }
    protected void btnContinue_Click(object sender, EventArgs e)
    {
        //Session["ShoppingCartTemp"]//
        DataTable dtCustomer = new DataTable();
        dtCustomer = ShoppingCart.FindCustomerByPhoneOrIdNo(ref error, txtPhoneOrIDNo.Text);
        if (dtCustomer.Rows.Count > 0)
        {
            txtCustomerKey.Text = dtCustomer.Rows[0]["customer_key"].ToString();
            txtFullName.Text = dtCustomer.Rows[0]["customer_name"].ToString();
            txtPhone.Text = dtCustomer.Rows[0]["phone"].ToString();
            dropdlProvince.SelectedValue = dtCustomer.Rows[0]["ProvinceCode"].ToString();
            //dropdlProvince.SelectedItem.Value = dtCustomer.Rows[0]["ProvinceCode"].ToString();
            BindDataTown(dtCustomer.Rows[0]["ProvinceCode"].ToString());
            dropdlTown.SelectedValue = dtCustomer.Rows[0]["TownCode"].ToString();
            //dropdlTown.SelectedItem.Value = dtCustomer.Rows[0]["TownCode"].ToString();
            txtAddress.Text = dtCustomer.Rows[0]["address"].ToString();
            txtIdNo.Text = dtCustomer.Rows[0]["IDCardNo"].ToString();
            CloseDialog("Login");
            UpdatePanel1.Update();
        }
        CloseDialog("Login");
    }
    private void CloseDialog(string dialogId)
    {
        string script = string.Format(@"closeDialog('{0}')", dialogId);
        ScriptManager.RegisterClientScriptBlock(Page, typeof(Usercontrol_ProceedOrder), Page.UniqueID, script, true );
    }
    private void ShowDialog(string dialogId)
    {
        string script = string.Format(@"showDialog('{0}')", dialogId);
        ScriptManager.RegisterClientScriptBlock(Page, typeof(Usercontrol_ProceedOrder), Page.UniqueID, script, true);
    }
    protected void btnRegistryFinishClose_Click(object sender, EventArgs e)
    {
        //load data vào InfoRegistryFinish và xử lý nạp dữ liệu startkit + chuyển sang bước 2       

        CloseDialog("RegistryFinish");
        if (Session["UserName"] != null)
        {
            step_1.Visible = false;
            step_3.Visible = false;
            step_2.Visible = true;
            btnStep_2_Back.Visible = false;
            txtSalesp_key_Support.Text = Session["UserName"].ToString();
            UpdatePanel1.Update();
            //nạp startkit
            if (ShoppingCart.CheckFirstOrderBySalespKey(ref error, Session["UserName"].ToString()))
            {
                List<ShoppingCart> ListItemStartKit = new List<ShoppingCart>();
                ListItemStartKit = ShoppingCart.GetItemStartKit(ref error);
                Session["ItemStartKit"] = ListItemStartKit;
                //render 
                UpdatePanel updatepan = new UpdatePanel();
                updatepan = (UpdatePanel)Page.Master.FindControl("ContentPlaceHolder1").FindControl("UpdatePanel1").FindControl("ShoppingCartDetail1").FindControl("UpdatePanelOnShoppingCartDetails");
                updatepan.Update();
            }

            ClassExecute.ClassExecute dt;
            //string str = webapp4U.Configuration.CurrentConnectionString;
            dt = new ClassExecute.ClassExecute();
            DataTable db = dt.Get_Data_DataTable(str, ref error, "k_GetInfoNPPRegisterSuccess", CommandType.StoredProcedure,
                new SqlParameter("@salesp_key", Session["UserName"].ToString()));
            uscMsgBox1.AddMessage("1.Bạn đã đăng nhập vào hệ thống thành công", uscMsgBox.enmMessageType.Info);
            uscMsgBox1.AddMessage("  Tên đăng nhập : " + db.Rows[0]["salesp_key"].ToString(), uscMsgBox.enmMessageType.Info);
            uscMsgBox1.AddMessage("  Mật khẩu : " + db.Rows[0]["PW"].ToString(), uscMsgBox.enmMessageType.Info);
            uscMsgBox1.AddMessage("2.Để bảo mật đề nghị bạn thay đổi mật khẩu.", uscMsgBox.enmMessageType.Info);
            uscMsgBox1.AddMessage("3.Thông tin người bảo trợ của bạn.", uscMsgBox.enmMessageType.Info);
            uscMsgBox1.AddMessage("  Họ tên : " + db.Rows[0]["TuyenTren"].ToString(), uscMsgBox.enmMessageType.Info);
            uscMsgBox1.AddMessage("  Cấp bậc : " + db.Rows[0]["Description"].ToString(), uscMsgBox.enmMessageType.Info);
            uscMsgBox1.AddMessage("  Số điện thoại : " + db.Rows[0]["Mobile"].ToString(), uscMsgBox.enmMessageType.Info);
        }        
        //CloseDialog("RegistryFinish");

    }
    
   
    //protected void Page_PreRender(object sender, EventArgs e)
    //{
    //    if (Session["CustomerFind"] != null)
    //    {
    //        DataTable dtCustomer = new DataTable();
    //        dtCustomer = (DataTable)Session["CustomerFind"];
    //        if (dtCustomer.Rows.Count > 0)
    //        {
    //            txtCustomerKey.Text = dtCustomer.Rows[0]["customer_key"].ToString();
    //            txtFullName.Text = dtCustomer.Rows[0]["customer_name"].ToString();
    //            txtPhone.Text = dtCustomer.Rows[0]["phone"].ToString();
    //            dropdlProvince.SelectedValue = dtCustomer.Rows[0]["ProvinceCode"].ToString();
    //            //dropdlProvince.SelectedItem.Value = dtCustomer.Rows[0]["ProvinceCode"].ToString();
    //            BindDataTown(dtCustomer.Rows[0]["ProvinceCode"].ToString());
    //            dropdlTown.SelectedValue = dtCustomer.Rows[0]["TownCode"].ToString();
    //            //dropdlTown.SelectedItem.Value = dtCustomer.Rows[0]["TownCode"].ToString();
    //            txtAddress.Text = dtCustomer.Rows[0]["address"].ToString();
    //            txtIdNo.Text = dtCustomer.Rows[0]["IDCardNo"].ToString();

    //        }
    //    }
    //}
   
}